package com.swanclouds.redfish.managers.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.swanclouds.model.managers.NetworkProtocol;
import java.util.Map;

public class NetworkProtocolModel implements NetworkProtocol {

    //BMC服务实例信息的访问路径
    @JsonProperty("@odata.id")
    private String dataId;

     //BMC服务信息的OData描述信息
    @JsonProperty("@odata.context")
    private String context;

    //BMC服务资源集合的类型
    @JsonProperty("@odata.type")
    private String type;

    //BMC服务实例信息的ID
    @JsonProperty("Id")
    private String id;

    //BMC服务实例信息的名称
    @JsonProperty("Name")
    private String name;

    //BMC服务主机名
    @JsonProperty("HostName")
    private String hostName;

    //BMC的全称域名
    @JsonProperty("FQDN")
    private String fqdn;

    //BMC服务实例信息的描述
    @JsonProperty("Description")
    private String description;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("HTTPS")
    private Map<String,Object> https;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("HTTP")
    private Map<String,Object> http;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("SSH")
    private Map<String,Object> ssh;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("KVMIP")
    private Map<String,Object> kvmip;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("VirtualMedia")
    private Map<String,Object> virtualMedia;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("SNMP")
    private Map<String,Object> snmp;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("TELNET")
    private Map<String,Object> telnet;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("SSDP")
    private Map<String,Object> ssdp;

    //支持的服务信息，交换板不支持的服务显示null
    @JsonProperty("IPMI")
    private Map<String,Object> ipmi;


    public String getDataId() {
        return this.dataId;
    }


    public String getContext() {
        return this.context;
    }


    public String getType() {
        return this.type;
    }


    public String getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }

    public String getHostName() {
        return hostName;
    }

    public String getFqdn() {
        return fqdn;
    }

    public String getDescription() {
        return description;
    }

    public Map<String, Object> getHttps() {
        return https;
    }

    public Map<String, Object> getHttp() {
        return http;
    }

    public Map<String, Object> getSsh() {
        return ssh;
    }

    public Map<String, Object> getKvmip() {
        return kvmip;
    }

    public Map<String, Object> getVirtualMedia() {
        return virtualMedia;
    }

    public Map<String, Object> getSnmp() {
        return snmp;
    }

    public Map<String, Object> getTelnet() {
        return telnet;
    }

    public Map<String, Object> getSsdp() {
        return ssdp;
    }

    public Map<String, Object> getIpmi() {
        return ipmi;
    }

    @Override
    public String toString() {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            return objectMapper.writeValueAsString(this);
        }catch (JsonProcessingException e){
        }
        return "NetworkProtocolModel{" +
                "dataId='" + dataId + '\'' +
                ", context='" + context + '\'' +
                ", type='" + type + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", hostName='" + hostName + '\'' +
                ", fqdn='" + fqdn + '\'' +
                ", description='" + description + '\'' +
                ", https=" + https +
                ", http=" + http +
                ", ssh=" + ssh +
                ", kvmip=" + kvmip +
                ", virtualMedia=" + virtualMedia +
                ", snmp=" + snmp +
                ", telnet=" + telnet +
                ", ssdp=" + ssdp +
                ", ipmi=" + ipmi +
                '}';
    }
}
